package model.comunication;

import java.util.ArrayList;
import java.util.List;

import model.IRCursadaInstructor;
import model.IRHorarioCursada;
import model.dba.IRCursadaInstructorDAO;


public class IIRCursadaInstructor{
	private IRCursadaInstructorDAO irCursadaInstructorDAO;
	private static IIRCursadaInstructor  irCursadaInstructorInterface;

	private IIRCursadaInstructor() {
		irCursadaInstructorDAO = IRCursadaInstructorDAO.getInstance();
	}

	public static IIRCursadaInstructor getInstance() {
		if (irCursadaInstructorInterface == null) {
			irCursadaInstructorInterface = new IIRCursadaInstructor();
		}
		return irCursadaInstructorInterface;
	}

	/**
	 * Crea el objeto
	 * 
	 * @param id
	 * @param nombre
	 * @return
	 */
	public IRCursadaInstructor getIRCursadaInstructor(Integer idCursada, String dniInstructor) {
		return new IRCursadaInstructor(idCursada, dniInstructor);
	}

	/**
	 * Crea el objeto
	 * 
	 * @param nombre
	 * @return
//	 */
//	public IRCursadaInstructor getIRCursadaInstructora(Integer idCursada, String dniInstructor) {
//		return new IRCursadaInstructor(idCursada,dniInstructor);
//	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param id
	 * @return
	 */
	// TODO areglar para busacar para que te de un objeto
	 public List<IRCursadaInstructor> findAll(String dniInstructor) {
	 return this.irCursadaInstructorDAO.findAll(dniInstructor);
	 }

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param id
	 * @return
	 */
	// En un futuro se puede poner nombre(primero agragar a la DAO
	// public Sala findSala(String nombre) {
	// return this.salaDAO.find(nombre);
	// }

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param id
	 * @return
	 */
	public IRCursadaInstructor getIRCursadaInstructor(Integer id) {
		return this.irCursadaInstructorDAO.get(id);
	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @return
	 */
	public List<IRCursadaInstructor> getAllIRCursadaInstructor() {
		return this.irCursadaInstructorDAO.getAll();
	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param ids
	 * @return
	 */
	public List<IRCursadaInstructor> getSelectedSalas(Integer... ids) {// VER por exception
		List<IRCursadaInstructor> idList = new ArrayList<IRCursadaInstructor>();

		for (Integer id : ids) {
			idList.add(this.irCursadaInstructorDAO.get(id));
		}
		return idList;
	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param Sala
	 * @return
	 */
	public Integer addSala(IRCursadaInstructor sala) {
		return this.irCursadaInstructorDAO.add(sala);
	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param id
	 * @return
	 */
	public boolean deleteSala(Integer id) {
		return this.irCursadaInstructorDAO.delete(id);
	}

	/**
	 * Va contra la base de datos y obtiene el objeto
	 * 
	 * @param Sala
	 * @return
	 */
	// En un futuro se puede poner nombre(primero agragar a la DAO
	// public boolean updateIRCursadaInstructor(IRCursadaInstructor sala) {
	// return this.salaDAO.update(sala);
	// }

}
